Recent developments in World Wide Web (the Web) technology have turned Web browsers from passive document viewers to active platforms for downloadable software components. In this new computing paradigm, software components are automatically and transparently downloaded from remote sites and executed locally as the user browses through Web documents. Today, such software components conform to either of two different standards: Java applets or ActiveX controls. In the future, however, additional standards may emerge.
An advantage of this new computing paradigm is that it offers a richness of features and capabilities. However, at the same time, it exposes Web users to alarming high security risks. Never before was there a scenario in which unknown software components were downloaded from remote locations and executed, sometimes without the user even being aware of it. This creates a huge security hole and an opportunity for introducing malicious software such as Trojan horses into a computer and any network it is connected to. Since the computer is connected to a network such as the Internet, this security hole can serve as a means for carrying out information theft. For example, a downloaded component can collect sensitive data and transmit it over the Internet to competitors or criminals.
These security implications are known and different approaches have been taken to solve them. The Java programming language and environment were designed from the ground up with security in mind. Java applets execute in what is termed a secure `sandbox,` which is a run time environment in which applets are prevented from executing certain actions. For example, Java applets are not permitted to access local storage, modify system parameters or to establish a network connection to an untrusted site.
However, ActiveX controls, unlike Java, are composed of native Windows code and enjoy the same access privileges as any other Windows application. Thus, they have the same full access privileges that the currently logged in user has. This includes, for example, file and disk access, creating and accessing network connections and making system modifications.
A solution to these security related problems has been proposed which makes use of a system of authenticated certificates. The authenticated certificates are encrypted electronic signatures issued by trusted organizations which serve to identity the source of the downloaded ActiveX control. This mechanism enables the user to decide whether to trust the software author and permit the downloaded ActiveX control to run on their computer.
Although the authentication system somewhat relieves the security problem, it falls far short of providing an adequate and robust solution. As a security mechanism, it does little more than simply advise the user as to the identity of the software author. Anyone can obtain an electronic certificate, and having one only certifies the author's identity. It does nothing to verify their trustworthiness.
In addition, such a security system is also biased towards larger software authors and vendors because people are more apt to be familiar with and trust them. Thus, small vendors and little known individual software authors are discriminated against. This is in sharp contrast with the intention that the emergence of component technologies, e.g., ActiveX, Java, would foster a more specialized industry segmentation whereby numerous small but highly specialized software vendors would supply reusable components to be integrated into applications by high level solution providers.